//
//  MCBaseViewController.h
//  ZXZX
//
//  Created by menhao on 2018/8/24.
//  Copyright © 2018年 TLYL01. All rights reserved.
//

#import <UIKit/UIKit.h>
#import "DatePickerView.h"

typedef NS_ENUM(NSUInteger, UIViewException) {
    
    UIViewExceptionNoData, // 无数据
    UIViewExceptionNoNetwork,//网络不通
    UIViewExceptionErrNetwork//服务不通
    
};

@interface MCBaseViewController : UIViewController
/**3种不同类型的错误页面*/
@property (nonatomic,strong) MCEmptyView *noDataView;
@property (nonatomic,strong) MCEmptyView *noNetworkView;
@property (nonatomic,strong) MCEmptyView *errNetworkView;

/**tableView页面 必须赋值*/
@property (nonatomic,strong) UITableView *tableView;

/*
 *tableview 的数据源 如果不用这个字段 需要重写一下shouldShowExceptionViewWithManger方法 或者把这个方法的逻辑下放
   不赋值的话 不能使用方法 shouldShowExceptionViewWithManger 可以使用showExceptionType UIViewExceptionNoData 方法替代 数据为0 是调用，非0时调用hideExceptionView
 */

@property (nonatomic,strong) NSMutableArray *tableViewDataArray;
#pragma mark ------ 日期选择器 --------
/**datePicker 日期选择器*/
@property (nonatomic,  weak) DatePickerView  *datePicker;
/**datePicker的最小时间*/
@property (nonatomic,strong) NSDate *minDate;
/**datePicker的最大时间*/
@property (nonatomic,strong) NSDate *maxDate;
#pragma mark ------ 据不同类型展示的错误页面 --------
// 根据不同类型展示的错误页面
- (void)showExceptionType:(UIViewException)type;
//根据data判断是否展示无数据页面
- (void)shouldShowExceptionViewWithManger:(NSDictionary *)manager;
#pragma mark ------ 根据errcode 展示 --------
//根据errcode 展示
- (void)showExcaptionViewWithErrCode:(NSInteger)errcode;

- (void)showExcaptionView:(NSDictionary *)errorCode;

- (void)showExcaptionViewWithErr:(NSError *)err;
//隐藏错误页面
- (void)hideExceptionView;

#pragma mark ------ 日历类相关 --------
// datePickerY需要改变的话在viewwillapplear 中实现
- (void)datePickerY:(CGFloat)y;

- (void)cancelDatePicker;
- (void)cancelDatePickerAnimate;
- (NSDateFormatter *)dateFormat;



#pragma mark ------ 点击重试按钮触发请求需要实现的方法 --------


- (void)loadListData;
@end
